/*
 * Copyright (c) 2001, 2002 Boris Pruessmann and others. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Common Public License v0.5 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors: Boris Pruessmann - Initial implementation.
 */
package net.sourceforge.perforce.core.api;

import java.util.Date;

import net.sourceforge.perforce.core.syncinfo.ResourceSyncInfo;

/**
 * This interface describes the result of a 'p4 describe' command.
 * 
 * @version $Revision: 488 $
 * @author <a href="mailto:bpruessmann@users.sourceforge.net">Boris
 *         Pruessmann</a>
 */
public interface IDescribeResult {
  //----------------------------------------------------------------------------
  // --------- Methods

  /**
   * Returns the id of the changelist.
   * 
   * @return the changelist's identifier.
   */
  Integer getChangelist();

  /**
   * Returns the owner of the changelist.
   * 
   * @return the user that is responsible for the changelist.
   */
  String getUserName();

  /**
   * Returns the client which submitted the changelist.
   * 
   * @return the name of the client.
   */
  String getClientName();

  /**
   * Returns the date of submission.
   * 
   * @return the submissin date.
   */
  Date getDate();

  /**
   * Returns the description.
   * 
   * @return the description of the changelist.
   */
  String getDescription();

  /**
   * Returns the status of the changelist.
   * 
   * @return the status.
   */
  String getStatus();

  /**
   * Returns the affected files.<br>
   * Only the following fields will be set on the returned ResourceSyncInfo
   * objects:<br>
   * <ul>
   * <li>depotFileName</li>
   * <li>action</li>
   * <li>headType</li>
   * <li>headRevision</li>
   * </ul>
   * 
   * @return array of ResourceSyncInfo.
   */
  ResourceSyncInfo[] getAffectedFiles();
}
